Skip to content

Add release automation - #44

Merged
andrew merged 1 commit into
mainfrom
add-release-automation
Nov 9, 2026
Merged

andrew merged 1 commit into
mainfrom
add-release-automation

Conversation

@andrew

@andrew andrew commented Nov 9, 2026 •

Copy link
Copy Markdown
Contributor

Add a tag-triggered GoReleaser workflow for Linux, macOS, and Windows archives on amd64 and arm64.

Publish checksums, sign them with keyless Cosign, inject the tagged version into the binary, and ignore the generated distribution directory.

Summary by CodeRabbit

  • New Features
    • Tagged releases now publish downloadable builds for Linux, macOS, and Windows on amd64 and arm64.
    • Release archives include the license and README, along with checksums and signed verification bundles. Release versions and prerelease status are determined automatically.

Copilot AI balanced review requested due to automatic review settings November 9, 2026 14:54

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota. Try requesting a review at a lower effort level.

An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.

@coderabbitai

coderabbitai Bot commented Nov 9, 2026 •

Copy link
Copy Markdown
Contributor

Explain Change →

No actionable comments were generated in the recent review.

Walkthrough

Adds a GitHub Actions workflow that runs GoReleaser when a v* tag is pushed. Adds GoReleaser settings for cross-platform builds, archives, checksum signing, changelogs, and GitHub releases.

Changes: Release automation

Layer / File(s) Summary
Build and package release artifacts
.goreleaser.yaml, .gitignore
Configures Linux, macOS, and Windows builds for amd64 and arm64. Creates tar.gz archives with license and README files, generates and signs checksums, and ignores dist/.
Configure and run releases
.goreleaser.yaml, .github/workflows/release.yml
Configures snapshot versions, changelog sorting and exclusions, and GitHub release settings. The workflow runs GoReleaser when a v* tag is pushed.

Estimated code review effort: 2 (Simple) | ~12 minutes

Change: Other

Sequence Diagram(s)

sequenceDiagram
  participant GitHub
  participant Workflow as GitHub Actions workflow
  participant GoReleaser
  participant Cosign
  GitHub->>Workflow: Push tag matching v*
  Workflow->>GoReleaser: Run release --clean
  GoReleaser->>Cosign: Sign checksum artifacts
  GoReleaser->>GitHub: Publish release
Loading
Merge Risk: Minimal · up to 35351

No actionable release-configuration issue was established. The change is mergeable after normal checks.

Architecture risk: Low · up to 35351

The changed surface does not map to a changed system, dependency edge, entrypoint, or external dependency.

Changed systems: None identified.

Architecture concerns
No architecture-level concerns identified.

Review details

Before / after behavior

  • observed — Modified behavior in .github/workflows/release.yml: Adds a tag-triggered release workflow. Its job grants contents-write and OIDC-token permissions, checks out full history without persisted credentials, installs Cosign, configures Go from go.mod without caching, and runs GoReleaser release --clean with GITHUB_TOKEN.
  • observed — Modified behavior in .gitignore: Adds dist/ to the ignored paths.
  • observed — Modified behavior in .goreleaser.yaml: Adds the GoReleaser v2 project configuration, a pre-release go mod tidy hook, and builds with CGO disabled for Linux, macOS, and Windows on amd64 and arm64. Build metadata uses the commit timestamp and embeds the version alongside stripped debug information.
  • observed — Modified behavior in .goreleaser.yaml: Adds tar.gz archives named by project, version, OS, and architecture, including LICENSE and README files; configures checksums.txt and cosign signing of checksum artifacts with bundle output.
Pre-merge checks: Passed 5

Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed The title "Add release automation" matches the main change. The PR adds a tag-triggered GitHub Actions release workflow, a GoReleaser v2 configuration that builds cross-platform archives with checksum…
Docstring Coverage Passed No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentat…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Title check

Explanation

The title "Add release automation" matches the main change. The PR adds a tag-triggered GitHub Actions release workflow, a GoReleaser v2 configuration that builds cross-platform archives with checksums and Cosign signing, and a .gitignore entry for dist/. The title is concise and specific enough for a teammate scanning history to understand the primary change.

Full details: Docstring Coverage

Explanation

No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 0 functions across 0 files. (3 skipped: 3 unsupported.)

Finishing Touches

Generate unit tests (beta)

  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Recent review info

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: d1aa5121-47b9-46fe-b0c6-b7cb3a18a296
Commits

Reviewing files that changed from the base of the PR and between ac4e02a and 35351a9.

Files selected for processing: 3

  • .github/workflows/release.yml
  • .gitignore
  • .goreleaser.yaml

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 9 remain after this review.

@andrew
andrew merged commit 73e68f7 into main Nov 9, 2026
8 checks passed
@andrew
andrew deleted the add-release-automation branch November 9, 2026 15:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants